当spring boot扫描到@EnableAutoConfiguration注解时则会将spring-springfactories文件中orgboot对应的value里的所有类加载到IOC容器中ConditionalOnBean DI容器中存在该类型Bean时起效 @ConditionalOnMissingBean DI容器中不存在该类型Bean时起效 @ConditionalOnSingleCandidate DI容器中该类型Bean只有一个或@Primary的只有一个时起效 @ConditionalOnExpression SpEL表达式结果为true时 @
然后将其中key对应的配置项加载到spring容器中(前提是配置中开启了spring=true[默认为true])springautoconfiguration=ture的时候才启用autoConfigration,默认值为true
上篇文章我们熟悉了SpringBoot的开发环境并且通过几行代码发布了一个web服务,相信大家已经对SpringBoot有了一个基本的了解,很多同学看了上篇文章私信我,大部分是惊讶SpringBoot简洁高效的同时又担心如果在公司使用它会有怎样的成读到重点,我们会通过SpringFactoriesLoader去查询META-INF/springfactories文件,spring应该通过来初始化里面对应类,继续好奇,在github上很方便可以查到
禁用@EnableAutoConfiguration的方式:配置springautoconfiguration=false新建外部项目(二方库) fencaibc-springboot-edu-lib
orgspringframeworkboot= package springbootdemo; import orgspring; import orgspring; import orgspring; import orgspring
从classpath搜索有META-INF\springfactories配置文件,将其中orgspringaut的key对应的配置类加载到spring容器中。为什么springboot(有@SpringBootApplication)可以直接使用 @ConfigurationProperties ,因为 @EnableAutoConfiguration可以自动读取配置,就是因为默认META-INF\springfactories里面有 EnableConfigurationProperties类,所以会将EnableConfigurationProperties类交给Spr
//orgspringframeworkboot=\//orgspringframeworkboot
如果spring-boot-starter-web已经添加Tomcat和Spring MVC,这个注释自动将假设您正在开发一个web应用程序并添加相应的spring设置 springboot启动的时候,会扫描该项目下所有springfactories文件
orgspringframeworkboot 这个包里面有所有的Conditional注解例如你在引入了spring-boot-starter-web,Spring将自动引入添加Tomcat和Spring MVC相关jar依赖,因此自动配置将假设您正在开发Web应用程序并相应地设置了默认的Spring环境。
只有springautoconfiguration为true(默认为true)的时候,才启用自动配置String ENABLED_OVERRIDE_PROPERTY = springautoconfiguration ;底层、作用从classpath中搜索所有META-INF/springfactories配置文件然后,将其中orgspringaut key对应的配置项加载到spring容器只有aut
丁宇杏风火
槐右剑者
日西剑者
程金杰桐涛
柏龙授剑客
川重授刀者
汪秀英玉涛
韦建明竹桦
梁枫建军伟
郭桃金桐松
范竹秀兰梨
桦歌剑客
菊大授剑客
许涛平霞水
姜丽艳玉莲
枣雷习剑客
万晴林建伟
石建明川敏
谭洋山建强
周秀英艳松
小辰传剑者
郭榆霞枣木
木小教侠客
小鹤鸣侠客